/*
 * AudioDevice.h
 *
 *  Created on: 2016年4月13日
 *      Author: terry
 */

#ifndef AUDIODEVICE_H_
#define AUDIODEVICE_H_

#include "BasicType.h"

namespace av
{

class AudioDevice
{
public:
	virtual ~AudioDevice() {}

	virtual bool open(int channels, int rate, int bits) =0;

	virtual void close() =0;

	virtual bool isOpen() =0;

	virtual void write(uint8_t* data, int size, int64_t pts) =0;

	virtual void pause(bool toPause) =0;

	virtual void flush() =0;

	virtual bool isPaused() =0;

	virtual float getVolume() =0;

	virtual bool setVolume(float vol) =0;

	virtual bool isMute() =0;

	virtual bool setMute(bool muted) =0;

};



} /* namespace av */

#endif /* AUDIODEVICE_H_ */
